package com.fg.cloud.manager.mapper.agency;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import com.fg.cloud.common.PageUtils;
import com.fg.cloud.manager.entry.product.ProductSkuEntity;
import com.fg.cloud.manager.entry.system.TrolleyEntity;
import com.fg.cloud.manager.entry.system.vo.AgencyCartVo;
import com.fg.cloud.manager.mapper.BaseMapper;

/**
 * Description:经销商购物车mapper
 * @author dingjiang
 * @date 2017年8月28日上午10:55:30
 */
public interface AgencyCartMapper extends BaseMapper {

	/**
	 * Description:查询经销商购物车数量
	 * @param ageId 经销商ID
	 * @return
	 * @author around
	 * @date 2017年10月11日下午1:57:19
	 */
	@Select("select count(id) from t_agency_cart where ageId = #{ageId}")
	long findCount(@Param("ageId")Long ageId);
	
	/**
	 * Description:判断要添加的商品skuId和unitId是否已存在
	 * @param skuId
	 * @param unitId
	 * @return
	 * @author dingjiang
	 * @date 2017年8月29日上午10:59:19
	 */
	long filter(AgencyCartVo cartVo);
	
	/**
	 * Description:购物车查询
	 * @param pageinfo
	 * @return
	 * @author around
	 * @date 2017年10月19日下午5:24:48
	 */
	//List<AgencyCartVo> findList(PageUtils<AgencyCartVo> pageinfo);
	
	/**
	 * Description:数量累加
	 * @param amount
	 * @param skuId
	 * @param unitId
	 * @param updater ageId
	 * @return
	 * @author dingjiang
	 * @date 2017年8月29日下午2:10:59
	 */
	int addAmount(@Param("cart")AgencyCartVo cartVo,  @Param("updater")Long updater);
	
	/**
	 * Description:清空购物车
	 * @param ageId
	 * @return
	 * @author around
	 * @date 2017年10月19日下午5:43:47
	 */
	@Delete("delete from t_agency_cart where ageId = #{ageId}")
	long deleteAll(@Param("ageId")Long ageId);

	/**
	 * Description:查询同种sku数量之和
	 * @param skuId
	 * @return
	 * @author dingjiang
	 * @date 2017年8月29日下午6:47:47
	 */
	List<TrolleyEntity> findAmount(Long skuId);
	
	
	/**
	 * Description:购物车转订单之前同步商品信息
	 * @param find
	 * @return
	 * @author dingjiang
	 * @date 2017年8月29日下午6:48:01
	 */
	Long synchro(TrolleyEntity find);
	
	/**
	 * Description:删除指定的购物车记录
	 * @param ageId
	 * @param ids
	 * @return
	 * @author dingjiang
	 * @date 2017年8月30日上午10:50:55
	 */
	Long deletes(@Param("ageId")Long ageId, @Param("ids")Long[] ids);
	
	/**
	 * Description:根据skuId删除指定的购物车记录
	 * @param ageId
	 * @param ids
	 * @return
	 * @author dingjiang
	 * @date 2017年9月25日上午10:16:12
	 */
	Long deleteBySku(@Param("ageId")Long ageId, @Param("ids")Long[] ids);
	
	/**
	 * Description:根据商品sku查询购物车中商品对应条数
	 * @param skuId
	 * @param ageId
	 * @return
	 * @author liushengchao
	 * @date  2017年9月28日下午3:59:05
	 */
	int selectBySkuId(@Param("skuId")Long skuId, @Param("ageId")Long ageId);
	
	/**
	 * Description:根据skuid删除购物车记录（商品删除SKU时用）
	 * @param skuId
	 * @return
	 * @author liushengchao
	 * @date  2017年9月28日下午3:59:42
	 */
	int deleteBySkuId(@Param("skuId")Long skuId);
	
	/**
	 * Description:根据productId删除购物车记录（商品删除SKU时用）
	 * @param productId
	 * @return
	 * @author liushengchao
	 * @date  2017年9月28日下午4:00:22
	 */
	int deleteByproduct(@Param("productId")Long productId);
}
